{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Align Polar 5G Rate-Matching + Decoding\n",
    "\n",
    "This notebook compares the results with Fig. 13a from\n",
    "https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8962344\n",
    "\n",
    "Please note that not all rates are possible (as no code segmentation is supported yet)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tensorflow version:  2.8.0\n",
      "Number of GPUs available : 2\n",
      "Only GPU number 1 used\n"
     ]
    }
   ],
   "source": [
    "num_GPU = 1\n",
    "\n",
    "import tensorflow as tf\n",
    "print('Tensorflow version: ', tf.__version__)\n",
    "\n",
    "gpus = tf.config.experimental.list_physical_devices(\"GPU\")\n",
    "print('Number of GPUs available :', len(gpus))\n",
    "\n",
    "tf.config.experimental.set_visible_devices(gpus[num_GPU], 'GPU')\n",
    "tf.config.experimental.set_memory_growth(gpus[num_GPU], True)\n",
    "print('Only GPU number', num_GPU, 'used')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Import required packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "from IPython.display import Image\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "\n",
    "# Import Sionna\n",
    "import sys\n",
    "sys.path.append('../../..')\n",
    "import sionna\n",
    "\n",
    "# Load Sionna components\n",
    "from sionna.phy.mapping import Constellation, Mapper, Demapper\n",
    "from sionna.phy.fec.polar.encoding import Polar5GEncoder\n",
    "from sionna.phy.fec.polar.decoding import Polar5GDecoder\n",
    "from sionna.phy.utils import BinarySource, ebnodb2no\n",
    "from sionna.phy.utils.metrics import count_block_errors\n",
    "from sionna.phy.channel import AWGN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# reproducing the results from\n",
    "# https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8962344\n",
    "\n",
    "class Polar_BLER(tf.keras.Model):\n",
    "    def __init__(self,\n",
    "                 k,\n",
    "                 n):\n",
    "        super().__init__()\n",
    "\n",
    "        self.n = n\n",
    "        self.k = k\n",
    "\n",
    "        # decoder parameters ()\n",
    "        decoder_type = \"SCL\"\n",
    "        list_size = 8\n",
    "\n",
    "        self.enc = Polar5GEncoder(self.k, self.n)\n",
    "        self.dec = Polar5GDecoder(self.enc,\n",
    "                                dec_type=decoder_type,\n",
    "                                list_size=list_size)\n",
    "\n",
    "        # init system components\n",
    "        self.source = BinarySource() # generates random info bits\n",
    "        self.constellation = Constellation(\"qam\", # QPSK\n",
    "                                num_bits_per_symbol=2)\n",
    "        self.mapper = Mapper(constellation=self.constellation)\n",
    "        self.channel = AWGN()\n",
    "        self.demapper = Demapper(\"app\", constellation=self.constellation) # APP demapper\n",
    "\n",
    "    @tf.function()\n",
    "    def run_dec(self, llr_ch):\n",
    "        u_hat = self.dec(llr_ch) # run Polar decoder\n",
    "        return u_hat\n",
    "\n",
    "    def run_ber(self, batch_size, esno_db):\n",
    "\n",
    "        # esno_db; no rate adjustement\n",
    "        no = ebnodb2no(esno_db, num_bits_per_symbol=1, coderate=1)\n",
    "        u = self.source([batch_size, self.k]) # generate random bit sequence\n",
    "        c = self.enc(u) # Polar encode\n",
    "        x = self.mapper(c) # map to symbol (QPSK)\n",
    "        y = self.channel(x, no) # transmit over AWGN channel\n",
    "        llr_ch = self.demapper(y, no) # demapp\n",
    "\n",
    "        # call decoder as tf.function\n",
    "        u_hat = self.run_dec(llr_ch)\n",
    "\n",
    "        # coun and return errors\n",
    "        num_wer = count_block_errors(u, u_hat)\n",
    "        return num_wer\n",
    "\n",
    "    def find_threshold(self):\n",
    "        \"\"\"Bisection search to find required SNR to reach target SNR.\"\"\"\n",
    "        batch_size = 1000\n",
    "        max_batch_iter = 10 # simulate cws up to batch_size * max_batch_iter\n",
    "        max_wer = 100  # number of errors before stop\n",
    "        target_wer = 1e-3 # target error rate to simulate (given by ref. paper)\n",
    "\n",
    "        # bisection parameters\n",
    "        esno_db_min = -25\n",
    "        esno_db_max = 15\n",
    "        esno_interval = (esno_db_max-esno_db_min)/4\n",
    "        esno_db = 2*esno_interval + esno_db_min\n",
    "        max_iters = 12 # iters for bisection search\n",
    "\n",
    "        # run bisection\n",
    "        for i in range(max_iters):\n",
    "            num_wer = 0\n",
    "            num_cws = 0\n",
    "            for j in range(max_batch_iter):\n",
    "                num_wer += self.run_ber(batch_size, esno_db)\n",
    "                num_cws += batch_size\n",
    "                if num_wer>max_wer:\n",
    "                    break\n",
    "            wer = num_wer/num_cws\n",
    "            if wer>target_wer:\n",
    "                esno_db += esno_interval\n",
    "            else:\n",
    "                esno_db -= esno_interval\n",
    "            esno_interval = esno_interval/2\n",
    "        return esno_db"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "12\n",
      "Finding threshold of k = 12, n = 160\n",
      "Warning: For 12<=k<=20 additional 3 parity-check bits are defined in 38.212. They are currently not implemented by this encoder and, thus, ignored.\n",
      "Found threshold at:  -4.4580078125\n",
      "16\n",
      "Finding threshold of k = 16, n = 160\n",
      "Warning: For 12<=k<=20 additional 3 parity-check bits are defined in 38.212. They are currently not implemented by this encoder and, thus, ignored.\n",
      "Found threshold at:  -3.4130859375\n",
      "32\n",
      "Finding threshold of k = 32, n = 160\n",
      "Found threshold at:  -0.5908203125\n",
      "64\n",
      "Finding threshold of k = 64, n = 160\n",
      "Found threshold at:  2.5048828125\n",
      "128\n",
      "Finding threshold of k = 128, n = 160\n",
      "Found threshold at:  6.8408203125\n",
      "140\n",
      "Finding threshold of k = 140, n = 160\n",
      "Found threshold at:  8.1982421875\n",
      "12\n",
      "Finding threshold of k = 12, n = 240\n",
      "Warning: For 12<=k<=20 additional 3 parity-check bits are defined in 38.212. They are currently not implemented by this encoder and, thus, ignored.\n",
      "Found threshold at:  -6.2060546875\n",
      "16\n",
      "Finding threshold of k = 16, n = 240\n",
      "Warning: For 12<=k<=20 additional 3 parity-check bits are defined in 38.212. They are currently not implemented by this encoder and, thus, ignored.\n",
      "Found threshold at:  -5.3173828125\n",
      "32\n",
      "Finding threshold of k = 32, n = 240\n",
      "Found threshold at:  -2.5341796875\n",
      "64\n",
      "Finding threshold of k = 64, n = 240\n",
      "Found threshold at:  0.0048828125\n",
      "128\n",
      "Finding threshold of k = 128, n = 240\n",
      "Found threshold at:  3.2763671875\n",
      "140\n",
      "Finding threshold of k = 140, n = 240\n",
      "Found threshold at:  3.9111328125\n",
      "210\n",
      "Finding threshold of k = 210, n = 240\n",
      "Found threshold at:  7.7392578125\n",
      "220\n",
      "Finding threshold of k = 220, n = 240\n",
      "Found threshold at:  8.6865234375\n",
      "12\n",
      "Finding threshold of k = 12, n = 480\n",
      "Warning: For 12<=k<=20 additional 3 parity-check bits are defined in 38.212. They are currently not implemented by this encoder and, thus, ignored.\n",
      "Found threshold at:  -9.3310546875\n",
      "16\n",
      "Finding threshold of k = 16, n = 480\n",
      "Warning: For 12<=k<=20 additional 3 parity-check bits are defined in 38.212. They are currently not implemented by this encoder and, thus, ignored.\n",
      "Found threshold at:  -8.4228515625\n",
      "32\n",
      "Finding threshold of k = 32, n = 480\n",
      "Found threshold at:  -5.7958984375\n",
      "64\n",
      "Finding threshold of k = 64, n = 480\n",
      "Found threshold at:  -3.3544921875\n",
      "128\n",
      "Finding threshold of k = 128, n = 480\n",
      "Found threshold at:  -0.6982421875\n",
      "140\n",
      "Finding threshold of k = 140, n = 480\n",
      "Found threshold at:  -0.2880859375\n",
      "210\n",
      "Finding threshold of k = 210, n = 480\n",
      "Found threshold at:  1.6357421875\n",
      "220\n",
      "Finding threshold of k = 220, n = 480\n",
      "Found threshold at:  1.9580078125\n",
      "256\n",
      "Finding threshold of k = 256, n = 480\n",
      "Found threshold at:  2.8955078125\n",
      "300\n",
      "Finding threshold of k = 300, n = 480\n",
      "Found threshold at:  3.8818359375\n",
      "400\n",
      "Finding threshold of k = 400, n = 480\n",
      "Found threshold at:  6.4501953125\n",
      "450\n",
      "Finding threshold of k = 450, n = 480\n",
      "Found threshold at:  8.5986328125\n",
      "460\n",
      "Finding threshold of k = 460, n = 480\n",
      "Found threshold at:  9.4580078125\n",
      "12\n",
      "Finding threshold of k = 12, n = 960\n",
      "Warning: For 12<=k<=20 additional 3 parity-check bits are defined in 38.212. They are currently not implemented by this encoder and, thus, ignored.\n",
      "Found threshold at:  -9.6923828125\n",
      "16\n",
      "Finding threshold of k = 16, n = 960\n",
      "Warning: For 12<=k<=20 additional 3 parity-check bits are defined in 38.212. They are currently not implemented by this encoder and, thus, ignored.\n",
      "Found threshold at:  -8.6767578125\n",
      "32\n",
      "Finding threshold of k = 32, n = 960\n",
      "Found threshold at:  -8.8330078125\n",
      "64\n",
      "Finding threshold of k = 64, n = 960\n",
      "Found threshold at:  -6.7236328125\n",
      "128\n",
      "Finding threshold of k = 128, n = 960\n",
      "Found threshold at:  -4.0478515625\n",
      "140\n",
      "Finding threshold of k = 140, n = 960\n",
      "Found threshold at:  -3.7548828125\n",
      "210\n",
      "Finding threshold of k = 210, n = 960\n",
      "Found threshold at:  -2.0166015625\n",
      "220\n",
      "Finding threshold of k = 220, n = 960\n",
      "Found threshold at:  -1.8017578125\n",
      "256\n",
      "Finding threshold of k = 256, n = 960\n",
      "Found threshold at:  -1.0400390625\n",
      "300\n",
      "Finding threshold of k = 300, n = 960\n",
      "Found threshold at:  -0.4345703125\n",
      "400\n",
      "Finding threshold of k = 400, n = 960\n",
      "Found threshold at:  1.2353515625\n",
      "450\n",
      "Finding threshold of k = 450, n = 960\n",
      "Found threshold at:  1.7529296875\n",
      "460\n",
      "Finding threshold of k = 460, n = 960\n",
      "Found threshold at:  1.8701171875\n",
      "512\n",
      "Finding threshold of k = 512, n = 960\n",
      "Found threshold at:  2.5048828125\n",
      "800\n",
      "Finding threshold of k = 800, n = 960\n",
      "Found threshold at:  6.1474609375\n",
      "880\n",
      "Finding threshold of k = 880, n = 960\n",
      "Found threshold at:  7.6806640625\n",
      "940\n",
      "Finding threshold of k = 940, n = 960\n",
      "Found threshold at:  9.9951171875\n",
      "[[-4.45800781e+00 -3.41308594e+00 -5.90820312e-01  2.50488281e+00\n",
      "   6.84082031e+00  8.19824219e+00  0.00000000e+00  0.00000000e+00\n",
      "   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00\n",
      "   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00\n",
      "   0.00000000e+00]\n",
      " [-6.20605469e+00 -5.31738281e+00 -2.53417969e+00  4.88281250e-03\n",
      "   3.27636719e+00  3.91113281e+00  7.73925781e+00  8.68652344e+00\n",
      "   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00\n",
      "   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00\n",
      "   0.00000000e+00]\n",
      " [-9.33105469e+00 -8.42285156e+00 -5.79589844e+00 -3.35449219e+00\n",
      "  -6.98242188e-01 -2.88085938e-01  1.63574219e+00  1.95800781e+00\n",
      "   2.89550781e+00  3.88183594e+00  6.45019531e+00  8.59863281e+00\n",
      "   9.45800781e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00\n",
      "   0.00000000e+00]\n",
      " [-9.69238281e+00 -8.67675781e+00 -8.83300781e+00 -6.72363281e+00\n",
      "  -4.04785156e+00 -3.75488281e+00 -2.01660156e+00 -1.80175781e+00\n",
      "  -1.04003906e+00 -4.34570312e-01  1.23535156e+00  1.75292969e+00\n",
      "   1.87011719e+00  2.50488281e+00  6.14746094e+00  7.68066406e+00\n",
      "   9.99511719e+00]]\n"
     ]
    }
   ],
   "source": [
    "# run simulations for multiple code parameters\n",
    "ks = np.array([12, 16, 32, 64, 128, 140, 210, 220, 256, 300, 400, 450, 460, 512, 800, 880, 940])\n",
    "ns = np.array([160, 240, 480, 960])\n",
    "\n",
    "esno = np.zeros([len(ns), len(ks)])\n",
    "\n",
    "for j,n in enumerate(ns):\n",
    "    for i,k in enumerate(ks):\n",
    "        if k<n:\n",
    "            print(k)\n",
    "            print(\"Finding threshold of k = {}, n = {}\".format(k, n))\n",
    "            model = Polar_BLER(int(k), int(n))\n",
    "            esno[j, i] = model.find_threshold()\n",
    "            print(\"Found threshold at: \", esno[j, i])\n",
    "print(esno)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA30AAAJRCAYAAADxk95AAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACv9UlEQVR4nOzdd3RU5d7F8e+kV0IqJQm9h14FpIPYQa9eEREsiCCCAgqKvVAVKUoTpAsoKlZEEAFFegLSe02AVNL7zHn/CHr1FaUlOZPJ/qzlIlMybDImmT3POb/HYhgGIiIiIiIi4piczA4gIiIiIiIiRUelT0RERERExIGp9ImIiIiIiDgwlT4REREREREHptInIiIiIiLiwFT6REREREREHJippc9iscyzWCxxFotl35+ue91iscRYLJbdl/673cyMIiIiIiIiJZnZK30LgFsvc/1kwzAaX/pvVTFnEhERERERcRimlj7DMH4GkszMICIiIiIi4sjMXun7J09bLJY9lw7/9Dc7jIiIiIiISEllMQzD3AAWSxXgW8Mw6l+6XA5IAAzgLaCCYRiPXebzBgADADw9PZuFh4cXW+bSxmaz4eRkr+8PSGHQc+z49Bw7Pj3Hjk/PsePTc+z4ivI5PnLkSIJhGMGXu83uSt/V3vZnzZs3N3bu3Fk0AYUNGzbQsWNHs2NIEdJz7Pj0HDs+PceOT8+x49Nz7PiK8jm2WCyRhmE0v9xtdvdWgsViqfCni/cA+/7pviIiIiIiIvLvXMz8yy0WyzKgIxBksViigdeAjhaLpTEFh3eeAp40K5+IiIiIiEhJZ2rpMwzjwctc/VGxBxEREREREXFQppY+EREREREp3fLy8oiOjiY7O9vsKEXOz8+PgwcP3tBjeHh4EBYWhqur61V/jkqfiIiIiIiYJjo6Gl9fX6pUqYLFYjE7TpFKS0vD19f3uj/fMAwSExOJjo6matWqV/15djfIRURERERESo/s7GwCAwMdvvAVBovFQmBg4DWviqr0iYiIiIiIqVT4rt71fK1U+kREREREpFSLjY2ld+/eVKtWjWbNmtG6dWtWrlx5w4+7YsUKIiIicHJy4v/vK75nzx5at25NREQEDRo0+GP1LjIykgYNGlCjRg2GDh1KYeyrrtInIiIiIiKllmEY9OzZk/bt23PixAkiIyNZvnw50dHRN/zY9evX54svvqB9+/Z/uT4/P58+ffowa9Ys9u/fz4YNG/4YzDJo0CDmzJnD0aNHOXr0KKtXr77hHCp9IiIiIiJSav3000+4ubkxcODAP66rXLkyQ4YMueHHrlu3LrVr1/7b9WvWrKFhw4Y0atQIgMDAQJydnTl//jypqancdNNNWCwW+vbty5dffnnDOTS9U0RERERESq39+/fTtGnTq7pvWloa7dq1u+xtS5cupV69elf1OEeOHMFisdC9e3fi4+Pp1asXI0eOJCYmhrCwsD/uFxYWRkxMzFU95r9R6RMREREREbvwxjf7OXAutVAfs17FMrx2V8RV33/w4MFs2rQJNzc3duzY8ZfbfH192b179w1nys/PZ9OmTezYsQMvLy+6dOlCs2bN8PPzu+HHvhyVPhERERERKbUiIiL4/PPP/7g8ffp0EhISaN68+d/uW1grfWFhYbRv356goCAAbr/9dqKioujTp89fziWMjo4mNDT0Wv45l6XSJyIiIiIiduFaVuQKS+fOnRk9ejQzZ85k0KBBAGRmZl72voW10te9e3cmTpxIZmYmbm5ubNy4kWHDhlGhQgXKlCnD1q1badWqFYsWLSqUcws1yEVEREREREoti8XCl19+ycaNG6latSotW7akX79+TJgw4YYfe+XKlYSFhbFlyxbuuOMOevbsCYC/vz/Dhw+nRYsWNG7cmKZNm3LHHXcAMGPGDPr370+NGjWoXr06t9122w3n0EqfiIiIiIiUahUqVGD58uWF/rj33HMP99xzzx+X09LS/vi4T58+9OnT52+f07x5c/bt21eoObTSJyIiIiIi4sBU+kRERERERByYSp+IiIiIiIgDU+kTERERERFxYCp9IiIiIiIiDkylT0RERERExIGp9ImIiIiISKkWGxtL7969qVatGs2aNaN169asXLnyhh/3+eefp06dOjRs2JB77rmH5OTkv9x+5swZfHx8ePfdd/+4bvXq1dSuXZsaNWowfvz4G84AKn0iIiIiIlKKGYZBz549ad++PSdOnCAyMpLly5cTHR19w4/drVs39u3bx549e6hVqxbvvffeX24fPnz4XzZft1qtDB48mO+//54DBw6wbNkyDhw4cMM5VPpERERERKTU+umnn3Bzc2PgwIF/XFe5cmWGDBlyw499yy234OLiAsBNN91ETEzMH7d9+eWXVK1alYiIiD+u2759OzVq1KBatWq4ubnRq1cvvvrqqxvO4XLDjyAiIiIiIlJC7d+/n6ZNm17VfdPS0mjXrt1lb1u6dCn16tX7x8+dN28ed999NwDp6elMmDCBtWvX/uXQzpiYGMLDw/+4HBYWxrZt264q279R6RMREREREfvw/QtwYW/hPmb5BnDb1Z8bN3jwYDZt2oSbmxs7duz4y22+vr7s3r37miOMGTMGFxcXHnjgAQBef/11hg0bho+PzzU/1vVQ6RMRERERkVIrIiKCzz///I/L06dPJyEhgebNm//tvtez0rdgwQK+/fZb1q1bh9VqBWDbtm189tlnjBw5kuTkZJycnPDw8KBZs2acPXv2j8+Njo4mNDT0Rv+JKn0iIiIiImInrmFFrrB07tyZ0aNHM3PmTAYNGgRAZmbmZe97rSt9q1evZuLEiWzcuBEvLy/S0tIA+OWXX/64z+uvv46Pjw9PP/00+fn5HD16lJMnTxIaGsry5ctZunTp9f/jLlHpExERERGRUstisfDll18ybNgwJk6cSHBwMN7e3kyYMOGGH/vpp58mJyeHbt26AdCsWTM++uijf7y/i4sLH3zwAd27d8dqtfLYY4/9ZdDL9VLpExERERGRUq1ChQosX7680B/32LFjf7n8+0rfn73++ut/uXz77bdz++23F2oObdkgIiIiIiLiwFT6REREREREHJhKn4iIiIiIiANT6RMREREREXFgKn0iIiIiIiIOTKVPRERERETEgan0iYiIiIhIqRYbG0vv3r2pVq0azZo1o3Xr1qxcubLQHn/SpElYLBYSExMBSElJ4a677qJRo0ZEREQwf/78P+67cOFCatasSc2aNVm4cGGh/P3ap09EREREREotwzDo2bMn/fr1Y+nSpQCcPn2ar7/+ulAe/+zZs6xZs4ZKlSr9cd306dOpV68e33zzDfHx8dSuXZuHHnqI9PR03njjDXbu3InFYqFZs2bcfffd+Pv731AGrfSJiIiIiEip9dNPP+Hm5sbAgQP/uK5y5coMGTKkUB5/2LBhTJw4EYvF8sd1FouFtLQ0DMMgPT2dgIAAXFxc+OGHH+jWrRsBAQH4+/vTrVs3Vq9efcMZtNInIiIiIiKl1v79+2natOlV3TctLY127dpd9ralS5dSr169v1z31VdfERoaSqNGjf5y/dNPP83dd99NxYoVSUtL45NPPsHJyYmYmBjCw8P/uF9YWBgxMTHX+C/6O5U+ERERERGxCxO2T+BQ0qFCfcw6AXUY1XLUVd9/8ODBbNq0CTc3N3bs2PGX23x9fdm9e/dVPU5mZiZjx45lzZo1f7vthx9+oHHjxvz0008cP36cbt26/WOZLAwqfSIiIiIiUmpFRETw+eef/3F5+vTpJCQk0Lx587/d91pW+o4fP87Jkyf/WOWLjo6mXbt27Nixg/nz5/PCCy9gsVioUaMGVatW5dChQ4SGhrJhw4Y/HiM6OpqOHTve8L9RpU9EREREROzCtazIFZbOnTszevRoZs6cyaBBg4CCVbrLuZaVvgYNGhAXF/fH5SpVqrBhwwbKly9PpUqVWLduHe3atSM2NpbDhw9TrVo1atSowejRo7l48SIAa9asYdy4cTf2D0SlT0RERERESjGLxcKXX375x8CV4OBgvL29mTBhQpH9na+88gqPPPIIDRo0wDAMJkyYQFBQ0B+3tWjRAoBXX32VgICAG/77VPpERERERKRUq1ChAsuXLy/Sv+PUqVOkpaUBULFixcue6wfw2GOP8dhjjxXq360tG0RERERERByYSp+IiIiIiIgDU+kTERERERFxYCp9IiIiIiIiDkylT0RERERExIGp9ImIiIiIiDgwlT4RERERESnVYmNj6d27N9WqVaNZs2a0bt2alStX3vDj/vbbb7Ru3ZoGDRpw1113kZqa+sdte/bsoXXr1kRERNCgQQOys7MBiIyMpEGDBtSoUYOhQ4diGMYN51DpExERERGRUsswDHr27En79u05ceIEkZGRLF++nOjo6Bt+7P79+zN+/Hj27t3LPffcw9SpUwHIz8+nT58+zJo1i/3797NhwwZcXV0BGDRoEHPmzOHo0aMcPXqU1atX33AOlT4RERERESm1fvrpJ9zc3Bg4cOAf11WuXJkhQ4bc8GMfOXKE9u3bA9CtWze+/vprANasWUPDhg1p1KgRAIGBgTg7O3P+/HlSU1O56aabsFgs9O3bly+//PKGc6j0iYiIiIhIqbV//36aNm16VfdNS0ujcePGl/3vwIEDf7t/REQEX331FQArVqwgJiYGKCiDFouF7t2707RpUyZOnAhATEwMYWFhf3x+WFjYH59zI1xu+BFEREREREQKwYWxY8k5eKhQH9O9bh3Kjx591fcfPHgwmzZtws3NjR07dvzlNl9fX3bv3n3VjzVv3jyGDh3KW2+9xd133/3HIZz5+fls2rSJHTt24OXlRZcuXWjWrBl+fn5X/djXQqVPRERERERKrYiICD7//PM/Lk+fPp2EhASaN2/+t/umpaXRrl27yz7O0qVLqVev3l+uq1OnDmvWrAEKVvd+P7wzLCyM9u3bExQUBMDtt99OVFQUffr0+cu5hNHR0YSGht7YPxCVPhERERERsRPXsiJXWDp37szo0aOZOXMmgwYNAiAzM/Oy973Wlb64uDhCQkKw2Wy8/fbbPP744wB0796diRMnkpmZiZubGxs3bmTYsGFUqFCBMmXKsHXrVlq1asWiRYsK5dxCndMnIiIiIiKllsVi4csvv2Tjxo1UrVqVli1b0q9fPyZMmHDDj71s2TJq1apFnTp1qFixIn369AHA39+f4cOH06JFCxo3bkzTpk254447AJgxYwb9+/enRo0aVK9endtuu+2Gc2ilT0RERERESrUKFSqwfPnyQn/cZ555hmeeeeaPy2lpaX983KdPnz9K4J81b96cffv2FWoOrfSJiIiIiIg4MJU+ERERERERB6bSJyIiIiIi4sBU+kRERERExFSGYZgdocS4nq+VSp+IiIiIiJjGw8ODxMREFb+rYBgGiYmJeHh4XNPnaXqniIiIiIiYJiwsjOjoaOLj482OUuSys7OvubD9fx4eHoSFhV3T56j0iYiIiIiIaVxdXalatarZMYrFhg0baNKkSbH/vTq8U0RERERExIGp9ImIiIiIiDgwlT4REREREREHptInIiIiIiLiwFT6REREREREHJhKn4iIiIiIiANT6RMREREREXFgKn0iIiIiIiIOTKVPRERERETEgan0iYiIiIiIODCVPhEREREREQem0iciIiIiIuLAVPpEREREREQcmEqfiIiIiIiIA1PpExERERERcWAqfSIiIiIiIg5MpU9ERERERMSBqfSJiIiIiIg4MJU+ERERERERB6bSJyIiIiIi4sBU+kRERERERByYSp+IiIiIiIgDU+kTERERERFxYCp9IiIiIiIiDkylT0RERERExIGp9ImIiIiIiDgwlT4REREREREHptInIiIiIiLiwFT6REREREREHJhKn4iIiIiIiANT6RMREREREXFgKn0iIiIiIiIOTKVPRERERETEgan0iYiIiIiIODCVPhEREREREQdmaumzWCzzLBZL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",
      "text/plain": [
       "<Figure size 1080x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# and plot the results\n",
    "leg_str = []\n",
    "for j,n in enumerate(ns):\n",
    "    plt.plot(np.log2(ks[ks<n]), esno[j, ks<n])\n",
    "    leg_str.append(\"G = {}\".format(n))\n",
    "\n",
    "plt.grid(\"both\")\n",
    "#plt.xlim([30, 1024])\n",
    "plt.ylim([-10, 15])\n",
    "plt.xlabel(\"log2(A)\")\n",
    "plt.ylabel(\"Es/No (dB)\")\n",
    "plt.legend(leg_str);\n",
    "x = plt.gcf()\n",
    "x.set_size_inches(15,10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "See reference in Fig. 13a from\n",
    "https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8962344\n",
    "\n",
    "Remark: baseline uses SCL-8 (solid curves): the dashed curves show the Polyanskyi-Poor-Verdu meta converse\n",
    "\n",
    "Remark2: Please note that the slight degradation for k<20 stems from the missing 3 additional PC bits.\n",
    "\n",
    "Remark3: Please note that the G=960 performance for k=16 is degraded (probably due to the missing PC bits and the extrem low rate)"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
